package main

import (
	"fmt"
	"reflect"
)

func typeOf(x interface{}) {
	t := reflect.TypeOf(x)
	v := reflect.ValueOf(x)
	switch t.Kind() {
	case reflect.Slice:
		fmt.Println(t)
	case reflect.Int:
		fmt.Println(v.Int())
	case reflect.Array:
		fmt.Println(t)
	case reflect.Map:
		fmt.Println(t)
	default:
		fmt.Println(t)
	}
}
func main() {

	a := 99
	typeOf(a)
}
